perm filename SERVO.DIS[PUR,LCS] blob sn#428431 filedate 1979-07-23 generic text, type T, neo UTF8
00100		HARDWARE.
00200	
00300	Dual port ram interface.
00400	
00500		The dual port ram is implemented as a dual port data bus.
00600	On each joint processor's data bus there is an 8 bit transiver
00700	connected to an 8 bit host - joint I/O bus that is controled by the
00800	host interface. When reading or writing data from a joint's memory,
00900	the host interface first addresses the joint. Then when the host reads
01000	or writes data to/from the interface, the interface waits for the joint
01100	processor's bus to be not locked and a joint instruction fetch signal.
01200	A joint's data bus is locked when the joint reads or writes an area of
01300	memory (shared memory), at an even address. The bus is unlocked when
01400	a read or write is preformed on an odd address. Waiting for a joint
01500	instruction fetch insures that the joint processor will not access
01600	the location being read or writen by the host before the host is
01700	finished.
01800	
01900	Each joint processor's data memory consists of:
02000	
02100		Read write memory. 1024 by 8 bits of moderatly fast (200 n.s.)
02200	mos memory.
02300	
02400		Address and control multiplexers. Twelve 2 line to 1 line data
02500	selectors.
02600	
02700		Data bus transiver.
02800	
02900		Bus lockout logic. Which is simply the least significant
03000	address bit of the joint processor clocked by an access to shared ram
03100	by the joint processor.
03200	
03300		Host - joint clock synchronizer. Which, during the joint phase,
03400	streches the ram CS signal until the falling edge of the joint's phase
03500	two clock.
03600	
03700	
03800	Processor and I/O.
03900	
04000		The encoder interface is a three state 2 to 1 multiplexer.
04100	The processor, output port, DAC, and EPROM program memory are standard
04200	except that the address decoding is only enabled during the phase two
04300	portion of the clock.
04400	
04500	Host - joint interface.
04600	
04700		The host - joint interface is the same as the earlier design
04800	except that the joint memory read/write logic has been added and the
04900	ADC and attention request logic have been removed.
     

00100		SOFTWARE.
00200	
00300		The basic servo routine remains the same as the earlier
00400	design. Parts of the program that are changed, new, or deleted are:
00500	
00600		The locations of data in ram are changed for the shared ram.
00700	
00800		All of the old position encoder routines have been replaced by
00900	the GETPOS routine which reads the parallel encoder and converts it
01000	from grey to binary.
01100	
01200		The PUTDAC routine has been changed from 12 bits to 8.
01300	
01400		All immediate commands have been deleted.
01500	
01600		The deferred command dispatcher has been changed and a
01700	host - joint deferred command interface routine has been added to
01800	the idle loop.
01900	
02000		The VETBL has been added to correct the dac output.
02100	
02200		The freeze routine has been moved into the reset routine
02300	and is no longer a subroutine.
02400	
02500		All of the 6532 timer and I/O routines have been deleted.
02600	
02700		NMI is no longer being used.
02800	
02900		All accesses to shared ram are "unlocked" within 4 micro
03000	seconds after being locked and all 16 bit accesses to shared ram
03100	are done with the interrupt disabled.
     

00100		COMPARISON OF THE JOINT PROCESSORS.
00200	
00300		The new joint prcessor improves on the earlier design in the
00400	following ways:
00500	
00600		By allowing the host direct access to each joint processor's
00700	memory, all host - joint communication is much simpler and faster.
00800	Using shared ram allows reduced host wait time (at least 40%)
00900	when setting new servo position or other syncronized functions,
01000	and greatly reduced joint processor parameter passing overhead
01100	(about 80% less).
01200	
01300		Twice the basic processor cycle than the earlier standard
01400	board.
01500	
01600		Reduced parts count. By using an off board interval generator,
01700	simpler logic on each processor, etc.
01800	
01900		Micro bus compatible 8 bit DAC. What is lost in resolution
02000	(8 bits vs. 12 bits), is regained in speed, less parts, ease of use,
02100	etc.
02200	
02300		Simpler software. By using shared ram, absolute optical
02400	encoders, synchronous intervals, etc. much of the software is
02500	reduced or eliminated.
02600	
02700		Software compatible. By using the same processor and limited
02800	modification of the basic design (I/O and interface paths, etc.),
02900	the joint and host software is able to remain somewhat compatible
03000	with the earlier system.
03100	
03200		Although converting the encoder position from grey to binary
03300	requires an extra 50 micro seconds, the reduced overhead of the
03400	parallel encoder makes up for the delay.